package com.haoxuer.discover.area.rest.api;

import com.haoxuer.discover.area.rest.domain.request.AreaListRequest;
import com.haoxuer.discover.area.rest.domain.request.AreaTypeRequest;
import com.haoxuer.discover.area.rest.domain.response.list.AreaDataList;
import com.haoxuer.discover.area.rest.domain.response.list.AreaList;
import com.haoxuer.discover.area.rest.domain.request.AreaCodeRequest;
import com.haoxuer.discover.area.rest.domain.request.AreaLevelRequest;

public interface AreaHandler {

    /**
     * 根据id查找下一层数据
     *
     * @param request
     * @return
     */
    AreaList list(AreaListRequest request);

    /**
     * 根据code查找下一级数据
     *
     * @param request
     * @return
     */
    AreaList list(AreaCodeRequest request);


    /**
     * 查询某一级的数据
     *
     * @param request
     * @return
     */
    AreaList level(AreaLevelRequest request);


    /**
     * 查询下一级的所有数据
     *
     * @param request
     * @return
     */
    AreaDataList id(AreaListRequest request);

    /**
     * 通过code查新下一级所有数据
     *
     * @param request
     * @return
     */
    AreaDataList code(AreaCodeRequest request);

    /**
     * 查询某个分类的数据
     * @param request
     * @return
     */
    AreaList type(AreaTypeRequest request);


}
